package com.gbb.common.widget;

import android.content.Context;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.widget.TextView;

/**
 * 无限滚动的TextView
 * <pre>
 * 问题：当一个页面有多个需要滚动的TextView时，这时只能有一个TextView进行滚动，该怎么解决呢？
 * 分析：Android中同一时间只能有一个控件获取焦点
 * 解决方案：重写isFocused()方法可以使几个TextView同时获得焦点
 * </pre>
 *
 * @author gaobingbing
 */
public class MarqueeTextView extends TextView {

    public MarqueeTextView(Context context){
        this(context,null);
        setMarqueeTextViewAttr();
    }

    public MarqueeTextView(Context context,AttributeSet attrs){
        super(context,attrs);
        setMarqueeTextViewAttr();

    }

    public MarqueeTextView(Context context,AttributeSet attrs,int defStyle){
        super(context,attrs,defStyle);
        setMarqueeTextViewAttr();
    }

    /**
     * 为TextView设置滚动属性
     */
    private void setMarqueeTextViewAttr(){
        setFocusable(true);
        setFocusableInTouchMode(true);

        setSingleLine();
        setEllipsize(TextUtils.TruncateAt.MARQUEE);
        setMarqueeRepeatLimit(-1);
    }

    @Override
    public boolean isFocused(){
        return true;
    }
}